
package Control;

import java.util.List;

import javax.faces.bean.ManagedBean;

import Model.Leitor;
import Model.Multa;
import Model.Usuario;
import Processos.DispensaMulta;
import Processos.SessaoLeitor;
import ServicosDAO.MultaDAO;
import Utilidade.Mensagens;

@ManagedBean
public class MultaBean {

	private Usuario usuario;

	private Multa multa;

	private Double multaTotal;

	private DispensaMulta dispensaMulta;

	private Mensagens msg;




	public MultaBean() {

		this.usuario = new Leitor();
		this.multa = new Multa();
		this.dispensaMulta = new DispensaMulta();
		this.msg = new Mensagens();
	}




	public String pagarMulta() {

		MultaDAO multaDao = new MultaDAO();

		if (multaDao.atualizarMultas(usuario.getId_usuario())) {
			this.msg.setSucessMsg("*Mutas quitadas!");
		}
		else {
			this.msg.setErroMsg("*Falha no Pagamento!");
		}

		return "atualizaMulta";
	}




	public String dispensarMulta() {

		return "atualizaMulta";
	}




	public String consultarMulta() {

		SessaoLeitor sessaoLeitor = new SessaoLeitor();
		sessaoLeitor.adicionarNaSessao(usuario.getLogin());

		MultaDAO multaDao = new MultaDAO();

		List<Multa> multas = multaDao.pesqMultas(usuario);

		Double total = 0.0;
		if (multas.size() > 0) {
			for (Multa multa : multas) {
				total = total + multa.getValor_devido();
			}
			multaTotal = total;
			this.msg.setSucessMsg("*" + multas.size()
					+ " Muta(s) encontrada(s)!");
		}
		else {
			this.msg.setErroMsg("*Nenhuma Multa Encontrada!");
		}

		return "atualizaMulta";
	}




	public void setUsuario(Usuario usuario) {

		SessaoLeitor sessaoLeitor = new SessaoLeitor();
		sessaoLeitor.adicionarNaSessao(usuario.getLogin());
		this.usuario = usuario;
	}




	public void setMulta(Multa multa) {

		this.multa = multa;
	}




	public void setMsg(Mensagens msg) {

		this.msg = msg;
	}




	public void setDispensaMulta(DispensaMulta dispensaMulta) {

		this.dispensaMulta = dispensaMulta;
	}




	public Usuario getUsuario() {

		return usuario;
	}




	public Multa getMulta() {

		return multa;
	}




	public Mensagens getMsg() {

		return msg;
	}




	public DispensaMulta getDispensaMulta() {

		return dispensaMulta;
	}




	public void setMultaTotal(Double multaTotal) {

		this.multaTotal = multaTotal;
	}




	public Double getMultaTotal() {

		return multaTotal;
	}

}
